﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using LibraryServices.Exceptions.Faults;
using Gota.Common.Deployment;

namespace Gota.Common.Contracts
{
    [ServiceContract(Namespace = "http://gota-project.org/Services/JavaIntegration/IGotaService/v1/")]
    public interface IGotaIntegrationServices
    {
        [OperationContract]
        [FaultContract(typeof(LibraryFault))]
        DeploymentResponse ProcessContent(DeploymentConfiguration deploymentConfiguration);

        [OperationContract]
        [FaultContract(typeof(LibraryFault))]
        HealthCheckResponse PerformHealthCheck(HealthCheckRequest healthCheckRequest);

        [OperationContract]
        [FaultContract(typeof(LibraryFault))]
        CreatePipelineResponse CreatePipeline(DeploymentConfiguration deploymentConfiguration);

        [OperationContract]
        [FaultContract(typeof(LibraryFault))]
        DeploymentResponse ProcessByPipeline(PipelineProcessingRequest pipelineRequest);
    }
}
